W11_資訊安全_XSS, SQL Injection, CSRF 及後端驗證_學習筆記整理


Posted by Christy on 2021-08-03

本週筆記內容

  • 本篇筆記是透過 Lidemy 課程 [ BE101 ] 來學習後端基礎,著重在資訊安全的部分,能夠自己實作出作業並理解相關理論是本週的目標,總結一句話就是「資訊安全_XSS, SQL Injection, CSRF 及後端驗證」

作業概覽

  • 留言板部分

    • 加強留言板,修補漏洞
      • hash 密碼
      • XSS
      • SQL Injection
      • 權限管理相關漏洞
    • 功能
      • 編輯
      • 刪除
      • 身份系統的管理後台
        • 管理員(可以新增留言,也可以編輯與刪除任意留言)
        • 一般使用者(可以新增留言,且編輯與刪除自己的留言)
        • 遭停權使用者(不能新增留言,但是可以編輯與刪除自己的留言)
  • 部落格

    • 有登入的時候可以
      • 要有登入機制,讓管理員能夠登入到管理後台
      • 身為一個管理員,要能夠新增文章
      • 身為一個管理員,要能夠編輯文章
      • 身為一個管理員,要能夠刪除文章
      • 身為一個管理員,新增文章時要有標題以及內文(如果有時間的話,可以去串 CKEditor)
    • 沒登入的時候
      • 身為一個訪客,在首頁要能看到最新的五篇文章
      • 身為一個訪客,可以從導覽列點入:文章列表,並看到所有文章
  • 簡答題

    • 請說明雜湊跟加密的差別在哪裡,為什麼密碼要雜湊過後才存入資料庫
    • include、require、include_once、require_once 的差別
    • 請說明 SQL Injection 的攻擊原理以及防範方法
    • 請說明 XSS 的攻擊原理以及防範方法
    • 請說明 CSRF 的攻擊原理以及防範方法

筆記內容

一、Hash 密碼

二、防止 SQL injection

三、防止 XSS

四、作業一實作-完成留言板

五、作業二實作-陽春部落格

六、怎麼做一個 Blog

七、其他筆記

出現錯誤訊息 "Fatal error: Call to a member function bind_param() on boolean" 怎麼解決?

主要是我在上傳 w11 的作業時,在作業一的 index.php 出現這個錯誤,本來以為是他所說的 bind_param() 的行數(這個錯誤訊息有顯示行數的),但後來發現是 sql 語法有問題

首先是我在 lidemy 的資料庫裡面改了資料庫名稱,要先把名字改好,資料都在重新輸入一次才可以。

第二個是因為用這個字串拼接的方式寫 sql 太亂了,所以漏看一個資料庫名稱沒改,後來把拼接方式改回原本的形式跟名稱改好以後,就沒事了。

參考資料










Related Posts

初識 shell script

初識 shell script

HTML CSS position 屬性

HTML CSS position 屬性

CSS Text Shadow Mouse Move Effect

CSS Text Shadow Mouse Move Effect


Comments